1. Field of the Invention
The present invention relates to a replicate file updating method and system appropriate for effective use of a replicate file in a distributed data processing system.
2. Description of the Prior Art
(1) Snoop cache
A snoop cache, for example, is described in an article entitled "Parallel Processing Mechanism" in the Volume of Electronics, Information and Communication, MAT, Maruzen Inc., pp. 167-207, 1989.
In a microprocessor system of which each processor has a respective cache memory and is made to access to a common main memory, data existing at the same addresses in the main memory are copied into the cache memory of each cache memory before access.
In the system, if any of the processors updates the main memory, the other processors may have the data at the updated address in the cache memory. Then, coherency must be maintained among the caches in a way such as invalidating the data. The snoop cache is a cache control feature for the purpose, or a cache memory making use of the control feature.
In the multiprocessor system having the processor connected through a bus, the snoop cache functions as follows. If any of the processors updates the main memory, the cache control circuit of each processor monitors the bus to know of the updated address. If the cache memory has the corresponding data, it invalidates them to maintain the coherency. In the snoop cache, monitoring of each processor is to write in the memories of the other processors having the feature equivalent to it.
The article mentioned above explains about a cache update protocol of write broadcast type on pages 196 and 197. With the protocol, if any of the other processors has data in its own cache to update the memory, the cache is not invalidated, but the data are immediately written in the corresponding cache.
A system having the snoop cache used features a high bus reliability. It also features that memory update by any processor can be dependably transferred to the other processors. Maintenance of the coherency in each snoop cache, thus, can be readily started.
(2) Distributed file system
The distributed file system has a plurality of data processing systems, such as personal computers or workstations, connected to a communication network called a LAN (local area network). Any of the data processing systems can perform its work while receiving information from or sending to another system through the communication network. There is an important technique in the distributed data processing system which is a distributed file system. The distributed file system makes it possible to access from any of the data processing systems in the communication network to any of the files existing in another data processing system. It also makes it possible for a plurality of data processing systems to use the files existing in one data processing system in common. The data processing system having the files used in common is referred to as the file server here. The data processing system which can access to the common file in the file server is referred to as a client.
If a specific common file is frequently accessed, many access requests are concentrated in the file server. The concentration may become a bottle neck in the whole characteristic performance of the distributed data processing system. In order to solve the problem of bottle neck, a copy of the file is placed in a second file server so that the second file server can process parts of the access requests to the file to distribute the load in the two file servers. With the copy of the same file put in a plurality of data processing systems, the copy can be alternatively used even if the original file is destructed. The access to the file, thus, cannot be interrupted or can be easily restored, thereby increasing the reliability of the whole distributed data processing system. Each copy of the same file is called the replica of the file, or the replicate file. Preparing the copy is called replication.
The distributed file system is described in the ACM, Computing Surveys, vol. 22, No. 4 (1990), pp. 321-374. The replication is explained on pages 339 and 340 in the article.
As described in the article mentioned above, the replication involves a problem of update method of a plurality of replicas. A prior update method of similarly updating all the replicas at the time of update can maintain equality of the replicas. This, however, causes too high overhead. Another prior method of not maintaining the equality of the replicas at all is good in view of availability and performance. This, however, cannot maintain correctness of the process results as the equality is broken.
Still another prior typical method is as follows. There are provided a single read/write replica and a plurality of read-only replica. Update contents for the read/write replica are transferred to the data processing system having the read-only replica afterwards to refresh the read-only replica. The latest status of the read/write replica, that is, is reflected to the read-only replica while the atomicity is being maintained. This method temporarily breaks the equality of the replicas. It, however, can restore the equality in a certain time so that consistency of the data of the file can be maintained. The method, thus, is available, particularly for the read-only file or the file which is very rarely updated.
The file server having the read/write replica is hereinafter referred to as the file server (of the file) for simplicity of description. The file server having the read-only replica is hereinafter referred to as the replica server (of the file) for simplicity of description. The terms "file server" and "replica server" have their concepts given with specific files determined. A data processing system which is a file server for the specific file can be a replica server for another file.
A file in which writing is frequently made increases refreshment of the read-only replica. Update data transfer due to the refreshment is increased. As a result, the file server having the read/write replica causes overhead of the updated file or update data sending process. It also causes a new load on the communication line. The busy rate rises. If there are a plurality of replicas provided for one file, the overhead is increased by a number of the replicas as compared with that of no replica.
The overhead of the file server can be relaxed by using a plurality of file servers to distribute the load. It however is not easy to relax the load on the communication line as this is only one resource for the distributed data processing system. Scalability is one of measures of evaluating the distributed data processing system. The communication line is one of the bottle necks for the scalability. That is, there exists tradeoffs in the availability of the file by replication and between the reliability increase and system scalability. It is a problem to solve them.